第4节 认识开源硬件


开源(open source)这个词,指的是事物规划为可以公开访问的,因此人们可以修改并分享。如今,开源概念包括开源项目、产品,或是自发倡导并欢迎开放变化、协作参与、快速原型、公开透明、精英体制以及面向社区开发的原则。

内容提要

  • 知道开源到概念,了解主要的开源协议
  • 了解开源硬件的概念和分类
  • 了解开源硬件的基本操作

什么是开源

开放源代码(Open source code)也称为源代码公开,指的是一种软件发布模式。一般的软件仅可取得已经过编译的二进制可执行档,通常只有软件的作者或著作权所有者等拥有程序的原始码。有些软件的作者会将原始码公开,被公开的原始程序代码称为开放源代码
开放源代码软件源于自由软件开源运动,简称开源软件。是指那些源代码公开,可以被自由使用、复制、修改和再发布的一系列软件的集合。由此得出开源软件的几个特点,即:

  1. 代码自由使用并可再发行
  2. 开源软件发行时其源代码要一并发行
  3. 允许他人对既有的源码进行修改并再次发布
  4. 原始创作者保证源代码的完整性
  5. 不歧视程序在任何领域内的使用
  6. 基于源程序的新产品也要遵循同样的开源许可协议

开源许可协议

自由软件/开源软件是自由的,免费的,源代码开放的,可自由下载安装和使用。同时,为了维护作者和贡献者的合法权利,保证这些软件不被一些商业机构或个人窃取,影响软件的发展,开源社区开发出了各种的开源许可协议,如:
GPL协议,COPYLEFT协议,LGPL协议,Apache License协议,BSD协议 。

license

重点介绍GPL协议,其授予程序接受人以下权利:

  1. 以任何目的运行此程序的自由
  2. 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提)
  3. 再发行复制件的自由
  4. 改进此程序,并公开发布改进的自由

例如:全球所有搭载Android操作系统的手机, 其操作系统部分要遵循一定的开源协议,因为Android操作系统的内核是Linux,而Linux正是基于开源许可协议GPL协议的操作系统,所以,以它为核心的Android也要遵循同样的GPL协议。

开源硬件的分类

主控板

开源硬件中有一部分根据其功能作用,称之为主控板。而主控板上的核心正是能够运行程序代码的“小电脑”,它能将我们的想法,也就是程序转换为其上引脚电信号的变化,通过这些变化的电信号来达成我们的想法。

外设和传感器

外设包括舵机,云台,电机,扩展板等,也包括摄像头,麦克风等人工智能套件。 传感器包括超声波传感器,电磁传感器,温湿度传感器等。

主要的开源硬件

树莓派

Arduino

ESP8266

Arduino电机扩展板

alt Arduino-motor 此扩展板搭载了两颗L293DD电机驱动芯片和独立的稳压电路,可通过DC插头给该扩展板提供外部5V-12V电源,2颗L293DD电机驱动芯片可驱动4个直流电机,为小车平台提供了驱动基础。
由于直流电机可通过电流的方向来改变转向,即可通过互换直流电机的两根引线来改变电机的运转方向。

Arduino Nano扩展板

alt arduino-nano-shield

此扩展板为引脚和电源扩展板,即把体积较小的Arduino Nano的所有引脚都印出来,并对每个引脚都配有供电引脚(VCC和GND),同时配有5mmDC接口,可接7-12V电源给arduino nano供电,且每个数字引脚都符合舵机控制线的定义,可以直接接入舵机。此扩展板与Arduino Nano的组合状态如下图: alt arduino nano-shield

NodeMcu电机扩展板

alt nodemcu-sh 此电机扩展板集成一颗L293DD直流电机驱动芯片,可以同时驱动两路直流电机,同时将NodeMcu开发板的所有引脚印出来,并对每个引脚配有电源(VCC和GND)插针,可直接入舵机,并可为需要5V或3.3V电源的设备供电,同时也可以通过VIN接线端子输入5V电源,Power开关可控制外部电源的通断。

NodeMcu与此扩展板组合状态如下图所示: alt nodemcu-all

NodeMcu电机扩展板的外部接线 alt nodemcu-sh-power

树莓派电机扩展板

alt rpi-motor-sh 此电机扩展板通过I2C接口接入树莓派,通过I2C总线芯片外挂两颗直流电机驱动芯片,可同时驱动4个直流电机,同时又引出了单独的一组I2C总线接口,除此之外,此扩展板带有4个标准舵机PWM输出接口,可以控制4路舵机。
由于该扩展板为大功率输出板,所以板上带有独立外部供电接口,使用此驱动板控制电机时需要外接5V-12V电源,否则不能正常工作。

此电机扩展板与树莓派组合状态如下图: alt rpi-motor-sh

舵机

alt servo

如上图所示,舵机是一种由直流电动机,减速齿轮组,角度控制器和动力输出轴组成的一种动力提供机械,主要作用是根据控制信号使动力输出轴转动一定角度。通常使用舵机来控制一些车船模型,以及机器人等。

alt servo

舵机有3条线,其定义见下表:
|颜色|作用| :-:|:-: |黄色|控制信号(PWM)输入线| |红色|5V供电线(电源正极)| |GND|电源负极|

注:第一根黄色线为信号线,需要为其输入PWM(脉冲宽度调制)信号才能使舵机正常工作。如下图所示:

alt servo1

即在一个脉冲循环内,高电平持续时间占总循环时间的比率(占空比)越大,舵机转动的角度就越大。

直流电机

alt motor

小车直流电机也叫TT电机,单个电机由一个直流马达和苏联减速齿轮构成,通过控制直流马达的正反转控制方向,控制直流马达的转速来控制速度。
在实际使用时可通过调换两条引出线在驱动板的位置来更改旋转方向。

超声波测距传感器

alt distance

超声波测距传感器(如下图所示)通过发出超声波(频率为20000Hz的声波),再被阻挡物体表面反射,反射的超声波又被接收装置接收,然后按下方照公式计算出来:
距离 = 声速 x 发出超声波到被接收返回的时间 / 2

超声波测距传感器的接口有4根引脚,基本定义为:
|名称|作用| :-:|:-:| |VCC|5V供电接口(电源正极)| |Trig|触发控制信号输入| |Echo|回响信号输出| |GND|电源负极|

DHT22温湿度传感器

alt dht22

DHT22温湿度传感器也称AM2302,是一款含有已校准数字信号输出的温湿度复合传感器,湿度量程范围0~99.9%RH,精度±2%RH,而温度量程范围是-40℃~80℃,精度±0.5℃。DHT22传感器也是单总线传感器,即其输出的数据通过一个引脚即可输出,其接口定义如下表所示:
|名称|作用| :-:|:-:| |VCC(+)|5V供电接口(电源正极)| |out|信号输出引脚| |GND(-)|电源负极|

电磁传感器

alt dct2 电磁铁是给绕在铁质内芯的线圈通电而产生磁力,而断电后磁力消失的装置。其控制接口定义如下表所示: |名称|作用| :-:|:-: |S(signal)|开关控制信号:高电平产生磁力;低电平磁力消失| |+(5V)|电源正极| |-(GND)|电源负极| 以Arduino UNO为例,电磁铁的接线方法如下图:
alt dct

ESP32-Cam无线摄像头

alt esp32-cam

ESP32-Cam是以ESP32芯片为计算核心,并搭载原生WiFi控制器的无线摄像头。它能够根据用户烧录的程序代码,使用户在连接它wifi名称的电脑网页端看到摄像头拍摄的实时视频,如下图所示: alt espcam

由于此模块已提前烧录好程序,且其在小组局域网中的IP地址也已固定下来,所以在使用时只需按照下图连接电源线,稍等片刻,在同局域网电脑的浏览器中输入该摄像头的IP地址,按回车即可: alt esp32-cam1

© 北京师范大学智慧学习研究院 all right reserved,powered by Gitbook修订时间: 2020-11-16

results matching ""

    No results matching ""

    results matching ""

      No results matching ""